package cn.bonoon.core.plugins;

import java.util.List;

import cn.bonoon.entities.AccountPrivilegeEntity;
import cn.bonoon.entities.RoleEntity;
import cn.bonoon.kernel.menus.ModulePrivilegeLoader;
import cn.bonoon.kernel.support.IOperator;
import cn.bonoon.kernel.support.services.GenericService;

public interface RoleService extends GenericService<RoleEntity>, ModulePrivilegeLoader {
	
//	List<RoleEntity> getRoles(IOperator opt);
	
//	List<Long> getRolesId(Long id);


//	List<ObjectItem> roles(GroupEntity group);
//
//	void saveGroupRoles(IOperator opt, Long aid, Long... roleIds);
//	
//	List<ObjectItem> roles(AccountEntity account);
//	
//	void saveAccountRoles(IOperator opt, Long aid, Long... roleIds);
//	
//	@Deprecated
//	List<String> getPrivilegeMeunId(Long roleId);
//	
//	long getActions(String meunId, Long roleId);
	
	// 保存管理员系统管理下的菜单权限
	void saveAdminPrivilege(IOperator opt, Long aid, String moduleId, String channelId, String... menuIds);

	// 管理员身份的用户在“系统管理”频道下的菜单权限
	List<AccountPrivilegeEntity> getAccountPrivilege(Long accountId, String moduleId, String channelId);

	List<RoleEntity> getRoles(Long accountId);
	
	List<RoleEntity> moduleRoles(IOperator opt, String moduleKey);
}
